/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model;

import java.util.ArrayList;
import java.util.HashMap;

/**
 *
 * @author Cyril
 */
public class TermesCollection {
    
    private HashMap<String,Terme> map;
    private Noeud currentNode;
    
    public TermesCollection() {
        this.map = new HashMap<String,Terme>();
    }
    
    //TODO : si problème, à optimiser : xpath remplacé par un id int du noeud (le même que dans la BDD)
    public void addTermeOccur(String name, Noeud currentNode, int pos) {
        
        Terme term;
        if (!map.containsKey(name)) {
            term = new Terme(name);
            map.put(name, term);
        } else {
            term=map.get(name);
        }
        currentNode.addOccur(term);
        term.addOccurence(currentNode.getId(), pos, currentNode);
    }
    
    public String getValues() {
        StringBuilder res = new StringBuilder();
        for (Terme t : this.map.values()) {
            res.append(t.getValue()).append(',');
        }
        res.deleteCharAt(res.length()-1); //on enlève la dernière virgule en trop
        
        return res.toString();
    }
    
    public ArrayList<String> getListValues() {
        ArrayList<String> res = new ArrayList<String>();
        for (Terme t : this.map.values()) {
            res.add(t.getValue());
        }
        return res;
    }
    
    public ArrayList<Terme> getListTermes(){
        ArrayList<Terme> res = new ArrayList<Terme>();
        for(Terme t : this.map.values()){
            res.add(t);
        }
        return res;
    }
    
    public Terme getTermeFromHM(String word){
        return map.get(word);
    }
}


